// home/diet/diet.js
const call = require('../../utils/request.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    foodName:'', //搜索框文本
    typeArr:[], //饮食分类
    typeIndex:0, //当前分类索引
    foodList:{1:[]}, //食品列表
    key:'', //当前显示的关键字
    foodArr:[], //当前选中的食品
    pageIndex:0, //当前页数
    topNum:0,
  },

  /**
   * 获取饮食分类列表 
   */
  getInit(){
    call.post('/api/foods/get_cats').then(res=>{
      console.log("获取饮食分类列表 ",res)
      const data = res.data.data;
      let arr = [];
      for(let i of data){
        arr.push({id:i.id,name:i.name}) //,img:i.img
      }
      if(data.length>0){
        this.setData({
          typeArr:arr
        })
        this.getDietList(true);
      }
    })
  },

  /**
   * 选择分类 
   */
  changeTypeIndex(e){
    const index = e.currentTarget.dataset.index;
    this.setData({typeIndex:index,pageIndex:0})
    this.getDietList(true);
  },

  /**
   * 获取饮食列表  isType是(类型搜索) 否(名称搜索)
   */
  getDietList(isType){
    let page = (this.data.pageIndex+1);
    let data = {};
    let key = ''; //关键词 判断查询的类型
    //类型查询 or 搜索查询
    if(isType){
      const index = this.data.typeIndex;
      key=this.data.typeArr[index].id;
      data = {cat_id:key}
    }else{
      key = this.data.foodName;
      data = {food_name:key}
    }
    data = Object.assign(data,{page: page}); 
    wx.showLoading({
      title: '正在获取数据',
      mask:true
    })
    call.post('/api/foods/get_foods_list',data).then(res=>{
      wx.hideLoading();
      console.log("获取食品列表 ",res)
      if(res.data.code == 0){
        const data = res.data.data.list;
        let arr = [];
        for(let i of data){
          arr.push({id:i.origin_id,name:i.name,img:i.img});
        }
        if(page == 1){
          this.setData({[`foodList`]:{1:arr},key:key,pageIndex:page,topNum:0})
        }else{
          this.setData({[`foodList.${page}`]:arr,key:key,pageIndex:page})
        }
      }else{
        this.setData({[`foodList`]:{1:[]},key:key,pageIndex:page})
      }
    })
  },

  /**
   * 下拉获取更多 
   */
  getMoreList(){
    const len = this.data.foodName.length>0;
    let isType = len?false:true;
    this.getDietList(isType);
  },

  /**
   * 搜索框数据绑定 
   */
  bindInput(e){
    this.setData({
      foodName: e.detail.value,
      pageIndex:0,
    })
    if(e.detail.value == ''){
      this.getDietList(true);
    }else{
      this.getDietList();
    }
  },

  /**
   * 食品选择 
   */
  chooseFood(e){
    const id = e.currentTarget.dataset.idx;
    const name = e.currentTarget.dataset.name;
    const img = e.currentTarget.dataset.img;
    let foodArr = this.data.foodArr;
    //是否已选择
    let index = -1;
    for(let i in foodArr){
      if(foodArr[i].id == id){
        index = i;
        break;
      }
    }
    if(index>-1){
      foodArr.splice(index,1);
    }else{
      foodArr.push({
        id,name,img
      })
    }
    this.setData({foodArr:foodArr})
  },

  /**
   * 确定
   */
  sure(){
    const foodArr = this.data.foodArr;
    let pages = getCurrentPages();
    let prePage = pages[pages.length - 2];
    prePage.setData({
      foodArr: foodArr
    });
    wx.navigateBack({
      delta: 1,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getInit();
    const arr = JSON.parse(options.arr);
    this.setData({
      foodArr:arr
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})